const KoaRouter = require("@koa/router")
const { showAvatarImage } = require("../controller/user.controller")
const userController = require("../controller/user.controller")
const { userVerify, pwdEncryption } = require("../middleware/user.middleware")

// 1. 创建路由对象
const userRouter = new KoaRouter({ prefix: "/users" })

// 2. 定义路由方法
// 2.1 用户注册接口
// 由于逻辑过于多 代码量过多 不便于维护，抽取到 /controller/user.controller
// 将userRouter.post 进行抽取
// 所以这里只编写 映射关系，逻辑都放入对应的类中

// 可以直接在 userController 类中的 create方法编写以下代码
// 利用可以传入多个中间件的特性，userController.create 创建用户前，添加一个用户的验证
// pwdEncryption 对密码进行加密处理
userRouter.post("/", pwdEncryption, userVerify, userController.create)

// 2.2.为用户提供头像展示
userRouter.get("/avatar/:userId", showAvatarImage)

// 2. 导出路由
module.exports = userRouter
